﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MPNotificationBar
{
    public interface INotification
    {
        /// <summary>
        /// Gets/sets notification id
        /// </summary>
        int NotificationID { get; set; }
        /// <summary>
        /// Gets/sets text to display
        /// </summary>
        /// <returns>string</returns>
        string Text { get; set; }
        /// <summary>
        /// Gets/sets sub text to display
        /// </summary>
        /// <returns>string</returns>
        string SubText { get; set; }
        /// <summary>
        /// Gets/sets progress (0-100)
        /// </summary>
        /// <returns>Int16</returns>
        Int16 Progress { get; set; }
        /// <summary>
        /// Gets/sets plugin id
        /// </summary>
        /// <returns>Int32</returns>
        Int32 PluginID { get; set; }
        /// <summary>
        /// Gets/sets value indicating if notification uses progressbar 
        /// </summary>
        /// <returns>Boolean</returns>
        Boolean IsUsingProgressBar { get; set; }
        /// <summary>
        /// Gets/sets value indicating if notification shall be removed
        /// </summary>
        /// <returns>Boolean</returns>
        Boolean Remove { get; set; }
        /// <summary>
        /// Gets/sets notification type
        /// </summary>
        /// <returns>MPNotificationBar.NotificationBarManager.Types</returns>
        MPNotificationBar.NotificationBarManager.Types NotificationType { get; set; }
        /// <summary>
        /// Progress Changed event
        /// </summary>
        event EventHandler ProgressChanged;
        /// <summary>
        /// Content Changed event
        /// </summary>
        event EventHandler ContentChanged;
        /// <summary>
        /// Gets/sets SecondsToLive
        /// </summary>
        /// <returns>int</returns>
        int SecondsToLive { get; set; }
        /// <summary>
        /// Gets/sets value indicating if notification shall show in fullscreen mode
        /// </summary>
        /// <returns>Boolean</returns>
        Boolean ShowInFullScreen { get; set; }
        /// <summary>
        /// Gets/sets thumbnail path
        /// </summary>
        /// <returns>string</returns>
        string ThumbnailPath { get; set; }
    }
}
